# 要求的 cmake 最低版本
cmake_minimum_required (VERSION 2.8)

# 项目名称
project(dxTest)

# 指定 winelib 目录（就是 wine 的安装目录，对 wine 源代码进行 make install 得到）
if(NOT WINE_DIR)
  message(FATAL_ERROR "请指定 Wine 安装目录 (添加 -DWINE_DIR=<path> 参数)")
endif()
message("-- Wine 安装目录: ${WINE_DIR} (-DWINE_DIR=${WINE_DIR})")
if (NOT EXISTS "${WINE_DIR}/bin/winegcc")
  message(FATAL_ERROR "找不到 ${WINE_DIR}/bin/winegcc，请确保安装目录正确。")
endif()
if (NOT EXISTS "${WINE_DIR}/include/wine/windows/windows.h")
  message(FATAL_ERROR "找不到 ${WINE_DIR}/include/wine/windows/windows.h，请确保安装目录正确。\n如果你是通过软件源安装的 winehq-devel 或 winehq-staging 软件包，\n请同时安装对应的头文件软件包：wine-devel-dev 或 wine-staging-dev。")
endif()

# 启用调试输出（输出所有执行的编译、链接命令，以便查看错误原因）
set(CMAKE_VERBOSE_MAKEFILE ON)

# 设置C/C++编译器
set(CMAKE_C_COMPILER "${WINE_DIR}/bin/winegcc")
set(CMAKE_CXX_COMPILER "${WINE_DIR}/bin/wineg++")

# 启用Unicode模式
set(CMAKE_CXX_FLAGS "-municode")

# 头文件查找路径
include_directories(
    "${CMAKE_SOURCE_DIR}/dxTest"
    "${CMAKE_SOURCE_DIR}/DXUT/Core"
    "${WINE_DIR}/include/wine/windows"
)

# 库文件查找路径
link_directories(
    "${WINE_DIR}/lib/wine/x86_64-unix"
    "${CMAKE_BINARY_DIR}"
)

# 源代码
file(GLOB_RECURSE DXTEST_SOURCES
    dxTest/*.cpp
)

# 可执行文件
add_executable(dxtest ${DXTEST_SOURCES})

# 链接到的库文件名称（不含后缀）
set(LIBS
    "d3d11"
)

# 将可执行文件与库链接
target_link_libraries(dxtest ${LIBS})
